/**复选框插件：全选反选
 * @author 邓元翔<417459665@qq.com>
 * 
 * 用法
$("#J_List").checkbox({
	checkboxAll: "#J_checkboxAll", // 全选按钮
	checkboxInverse: "#J_checkboxInverse" // 反选按钮
});
*/
;
(function($) {
	$.fn.checkbox = function(settings) {
		var defaults = {
			'container': $(this),
			'checkboxAll': 'a:eq(0)',
			'checkboxInverse': 'a:eq(1)'
		};

		defaults = $.extend(defaults, settings);

		var $container = $(defaults.container),
			$ipt = $container.find(':checkbox'), // 得到所有的checkbox
			iptSum = $ipt.length;

		// 点全选时
		$(defaults.checkboxAll).click(function() {
			var $iptNotChecked = $ipt.not(":checked"),
				$iptChecked = $ipt.filter(":checked");

			if ($iptNotChecked.length > 0) {
				$iptNotChecked.prop("checked", true);
			} else {
				$iptChecked.prop("checked", false);
			}

		});

		// 反选
		$(defaults.checkboxInverse).click(function() {
			var $iptNotChecked = $ipt.not(":checked"),
				$iptChecked = $ipt.filter(":checked");

			if ($iptNotChecked.length == iptSum) {
				$iptNotChecked.prop("checked", true);
			} else if ($iptChecked.length == iptSum) {
				$iptChecked.prop("checked", false);
			} else if ($iptNotChecked.length && $iptChecked.length) {
				$iptNotChecked.prop("checked", true);
				$iptChecked.prop("checked", false);
			}
		});

		return this;
	};
})(jQuery);